package com.hualude.roadsign.service;

import com.hualude.roadsign.dto.DTRequestDto;
import com.hualude.roadsign.dto.DTResponseDto;
import com.hualude.roadsign.dto.SignalMachineFaultDto;

import java.util.List;

/**
 * Created by pjn on 2017/7/22.
 */
public interface SignalMachineFaultService {
    /**
     * @Description: 获取信号机datatable
     * @Author: pan-jianan
     * @Date: 2017/7/22 17:20
     */
    public DTResponseDto getMachineReportFault4DT(DTRequestDto dtRequestDto, Integer actorId, Integer userId, Integer orgId) throws Exception;

    /**
     * @Description: 信号机详情
     * @Author: pan-jianan
     * @Date: 2017/7/22 19:00
     */
    public SignalMachineFaultDto getSignalMachineInfo2Fault(Integer signalMachineId) throws Exception;

    /**
     * @Description: 信号机故障详情
     * @Author: pan-jianan
     * @Date: 2017/7/22 18:47
     */
    public SignalMachineFaultDto getSignalMachineFaultInfo2Fault(Integer signalMachineId, Integer machineFaultId) throws Exception;

    /**
     * @Description: 更新故障
     * @Author: pan-jianan
     * @Date: 2017/7/22 20:55
     */
    public Integer updateSignalMachineFault(Integer machineFaultId, Integer machineLevel, Integer machineType, String machinePhoto, String machineReason, Double machineMoney) throws Exception;

    /**
     * @Description: 删除信号机故障
     * @Author: pan-jianan
     * @Date: 2017/7/22 21:36
     */
    public Integer deleteMachineFaultByIds(String machineFaultIds) throws Exception;

    /**
     * @Description: 获取信号机坐标4地图上报
     * @Author: pan-jianan
     * @Date: 2017/7/22 22:01
     */
    public List<SignalMachineFaultDto> getMachineCoordinate4Map(Integer orgId, Integer actorId) throws Exception;

    /**
     * @Description: 根据信号机坐标获取信息
     * @Author: pan-jianan
     * @Date: 2017/7/22 16:16
     */
    public List<SignalMachineFaultDto> getMachineEnergyByXY(String longitude, String latitude) throws Exception;

    /**
     * @Description: 信号机DT4故障上报
     * @Author: pan-jianan
     * @Date: 2017/7/22 23:26
     */
    public DTResponseDto getMachineFaultReport4DT(DTRequestDto dtRequestDto, Integer actorId, Integer orgId, String signalMachineStartRoad, String signalMachineEndRoad) throws Exception;


    /**
     * @Description: 判断是否信号机可上报：1可以，0不行
     * @Author: jiang-weirong
     * @Date: 2017/7/22 22:59
     */
    public Integer getMachineFaultIsReport(Integer signalMachineId) throws Exception;

    /**
     * @Description: 故障上报
     * @Author: jiang-weirong
     * @Date: 2017/7/22 23:17
     */
    public Integer reportMachineFault(Integer signalMachineId, Integer machineCreatorId, Integer machineLevel, Integer machineType,
                                      String machinePhoto, String machineReason, Double machineMoney, Integer machineOrgId, Integer machineMainOrgId) throws Exception;

    /**
     * @Description: 获取上报list
     * @Author: jiang-weirong
     * @Date: 2017/7/25 14:04
     */
    public List<SignalMachineFaultDto> getMachineFaultList4App(Integer orgId, String actorIds, Integer faultStatus, Integer count, Integer size) throws Exception;

    /**
     * @Description: 获取第一个路名
     * @Author: pan-jianan
     * @Date: 2017/7/23 0:36
     */
    public List<String> getStartRoad(String roadName, Integer actorId, Integer orgId) throws Exception;

    /**
     * @Description: 根据第一个获取第二个路名
     * @Author: pan-jianan
     * @Date: 2017/7/23 0:36
     */
    public List<String> getSectionByStartRoad(String roadName, Integer actorId, Integer orgId) throws Exception;


}
